End.
原
Mysql5.7 错误: this is incompatible with sql_mode=only_full_group_by(解决方法)
最近项目换上了Mysql5.7版本,然后发现惊奇的事件mysql竟然报错,大概说group by语句不行,感觉变成了Oracel一样,group by什么字段,就需要查询什么字段,这和mysql之前的版本是有冲突的,导致项目里面的group by语句都跑不起来了😳
下面将是小编总结的一些方法~可以解决哟
#概括 1、问题原因 2、解决方法
1、问题原因
mysql 5.7中 默认启用了 ONLY_FULL_GROUP_BY 这个表示什么呢,从字面上看,大概就是一种严谨的SQL模式,类似于Oracel那些Group by语句
那么我萌解决这个就很简单了~方法看下面😄
2、解决方法
2.1 普通解决(重启mysql后无效)
#第一步,显示现在的sql_mode
select @@GLOBAL.sql_mode;
#第二步,去掉上一步查出的sql_mode中的 ONLY_FULL_GROUP_BY,执行
set @@global.sql_mode = .......
2.2 高级解决(永久有效)
找到my.cnf,编辑它把以下命令放到合适位置,重启mysql 服务,OK报错没啦~
Centos的my.cnf文件一般在 /etc/my.cnf
[mysqld]
#sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
记得重启mysql服务哦~ OK啦,嘻嘻,重启后 开开心心地使用 低限制的group by语句吧😄
The End.
End.